Dynamic device interaction adaptation based on user engagement

ABSTRACT

The techniques disclosed herein enable dynamic device interaction adaptation based on user engagement. In general, a computer can leverage sensors to determine a user&#39;s level of engagement with one or more devices. As the user transitions his or her attention to different devices, the computer can utilize different interaction models to assist the user in interacting with each device that meets a threshold level of engagement with the user. Individual interaction models can configure the computer to direct input gestures received by the computing device to a selected device, and adapt the computer&#39;s input modality to provide user interface controls that are optimized for the selected device. When a user is interacting with two or more devices, automatic transitions between different interaction models can help improve the user&#39;s interaction with each device.

BACKGROUND

People interact with multiple computing devices throughout their dailylives. Typically, each device has specific interaction models andspecific peripherals. For example, a user may work with a laptopcomputer having a remote computer screen. In such an example, the usercan extend the computer's desktop and utilize a mouse and keyboard tointeract with user interfaces displayed on the computer's screen and theremote computer screen. Although this arrangement works well with laptopand desktop computers having external input peripherals, thisarrangement does not work well with mobile devices that utilize atouchscreen, such as tablets and phones. For example, although a mobiledevice can display content on a remote display screen, it is difficultfor a user to interact with the content on the remote display screenwhile using the touchscreen of the mobile device.

SUMMARY

The techniques disclosed herein enable dynamic device interactionadaptation based on user engagement. In general, the techniquesdisclosed herein leverage sensors in communication with a computer todetermine a user's level of engagement with one or more devices. As theuser transitions his or her attention to different devices, the computercan utilize different interaction models to assist the user ininteracting with each device that meets a threshold level of engagementwith the user. Individual interaction models can configure the computerto (1) direct input gestures received by the computing device to aselected device, and/or (2) adapt the computer's input modality toprovide user interface controls that are optimized for the selecteddevice. When a person is interacting with two or more devices, automatictransitions between different interaction models can help improve theuser's interaction with each device.

In some embodiments, a computer can adapt its input modality and thedirection of an input received by the user based on a user's level ofengagement with the computer, other devices, and people. In oneillustrative example, a tablet can operate using a normal interactionmodel while the user is looking at the tablet. When utilizing the normalinteraction model, the tablet can receive input gestures on atouchscreen for providing input to applications executing of the tablet.Then, when the user looks at a remote device, such as a connectedmonitor, the tablet can automatically transition to an interaction modelthat displays user interface controls that are optimal for assisting theuser to interact with content that is displayed the connected monitor.For instance, the tablet can receive gestures on the touchscreen forproviding input to modify content displayed on the connected monitor.

Signals received from one or more sensors can be used to identify adevice that a user is most engaged with. For instance, a computer canobtain image data from one or more sensors, such as a built-in camera.The image data can indicate a gaze target, e.g., a point in space theuser is looking at, and/or a gaze direction, e.g., a direction the useris looking. The computer can process the image data to identify anobject within a threshold distance of a user's gaze target or within athreshold of a user's gaze direction. In other examples, other signalscan be based on location data, e.g., based on GPS devices or Wi-Fidevices, audio data, e.g., based on signals received from acommunication session or a microphone, preference or historical data,e.g., a user's interaction history with one or more devices, or anyother data that identifies a device that a user is most engaged with. Insome configurations, a system may identify a device by the use of aprimary signal, such as a gaze direction, and one or more secondarysignals, such as audio signals, IR signals, sonar signals, locationdata, user preference data, or any other suitable signal or data. Insome configurations, the secondary signals can be utilized as atiebreaker when a primary signal indicates that two or more devices areof substantially equal focus of a user. The secondary signals can beutilized to improve a system's accuracy in identifying a device that auser is most engaged with.

As will be described in more detail, the present invention can adapt theuser interface control elements that is displayed on a touchscreen of amobile device and/or adapt the input capabilities of a touch-enabledmobile device to accommodate a number of different types of devices auser may be engaged with. For instance, when a user has a thresholdlevel of engagement with a remote computer, the user's touch-enabledmobile device can become an indirect pointing device, e.g., a sketchpad, for enabling the user to interact with content displayed on ascreen of the remote computer. As will be described in more detailbelow, a touch-enabled mobile device utilizing the techniques disclosedherein can allow a user to collaborate with a second user of the remotecomputer. In some instances, an input provided by a first user at thetouch-enabled mobile device can influence or supplement an inputprovided by a second user at a remote computer.

In another example, when a user has a threshold level of engagement withan embedded device of an automated home environment, the user's mobiletouch-enabled device can adapt the user interface and the inputcapabilities to accommodate the functionality of different embeddeddevices, such as a light, automated windows shades, a dishwasher, etc.The touch-enabled mobile device can automatically transition betweenindividual interaction models for each embedded device as a user looksat, or otherwise interacts with, respective embedded devices.

In some scenarios, a computer may not be able to identify an object inthe user's gaze direction. In such scenarios, the computer can select adefault interaction model that is associated with one or more defaultfunctions, a specific device, and/or a service. In one example, adefault function can involve simplistic functions such as a volumecontrol of the user's computer or another computer. When using thedefault interaction model, the computer can display any suitable userinterface control elements. For instance, when using the defaultinteraction model, a touchscreen of the user's computer may display avolume control dial for allowing the user to touch or otherwise providean input gesture to control a computer's volume. In addition, when usingthe default interaction model, the computer can direct the received userinput to any computing device or service associated with the defaultfunctionality. In another illustrative example, a default interactionmodel may allow a computer to interact with a remote service such asGoogle Home or Amazon's Echo service. In such scenarios, the user'scomputer can display graphical elements that enable a user to provide aninput for such services. In addition, the default interaction modelcauses the computer to direct any user input, including a voice input,to the selected services.

In some configurations, a computer can enable buffer zones to smooth thetransitions between input modes, thereby providing a more stableoperating environment for the user. In some configurations, one or morethresholds can be used to identify an object that is at or near a user'sgaze target. The thresholds can be dynamically adjusted based on one ormore factors. For instance, in some scenarios, when making a selectionbetween a first device and a second device, a system may select thedevice that is closest to a user's gaze target. However, as will bedescribed in more detail below, when the device has determined that auser is engaged with a first device, the computer may require a higherthreshold, e.g., a more deliberate gaze direction, for allowing a systemto transition the selected device from the first device to a seconddevice. In addition, or in the alternative, when a computer detects thata user has transitioned his or her gaze direction from one device toanother, the computer can delay the transition of the interaction modelfor a predetermined period of time. By dynamically adjusting atransition threshold and/or delaying a transition to select anotherdevice, a system can mitigate inadvertent transitions betweeninteraction models.

In some configurations, a computer can improve how it determines theinput modes. For instance, a computer can improve over time by the useof machine learning algorithms by processing data defining the user'spatterns of engagement over time. In addition, machine learningalgorithms can be utilized to compare patterns of engagement oncomparable systems deployed elsewhere.

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key or essentialfeatures of the claimed subject matter, nor is it intended to be used asan aid in determining the scope of the claimed subject matter. The term“techniques,” for instance, may refer to system(s), method(s),computer-readable instructions, module(s), algorithms, hardware logic,and/or operation(s) as permitted by the context described above andthroughout the document.

BRIEF DESCRIPTION OF THE DRAWINGS

The Detailed Description is described with reference to the accompanyingfigures. In the figures, the left-most digit(s) of a reference numberidentifies the figure in which the reference number first appears. Thesame reference numbers in different figures indicate similar oridentical items. References made to individual items of a plurality ofitems can use a reference number with a letter or a sequence of lettersto refer to each individual item. Generic references to the items mayuse the specific reference number without the sequence of letters.

FIG. 1 is a block diagram of several devices used for enabling dynamicdevice interaction adaptation based on user engagement.

FIG. 2A shows a scenario where a tablet computer can adapt an inputmodality to interact with a remote computer.

FIG. 2B shows a scenario where a tablet computer can adapt an inputmodality to interact with a remote computer, an embodiment where thetablet computer displays a mirror of the user interface displayed on theremote computer.

FIG. 2C shows a scenario where a tablet computer can adapt an inputmodality to interact with a remote computer and influence an input ofanother user of the remote computer.

FIG. 3 shows a scenario where a tablet computer can interact with anembedded device, where the input modality of the tablet can adapt tointeract with the embedded device.

FIG. 4 shows a scenario where an input modality of the tablet can adaptto interact with a default function, which may include a defaultfunction of the tablet, a remote device, or a remote service.

FIG. 5 shows aspects of a process for a computer to dynamically changeone or more thresholds used for identifying a target device.

FIG. 6 shows several sources providing signals that can be used toidentify a target device.

FIG. 7 shows a wearable device for providing signals that can be used toidentify a target device.

FIG. 8 is a flow diagram showing aspects of a routine for enabling thetechniques disclosed herein.

FIG. 9 is a computer architecture diagram illustrating an illustrativehardware and software architecture for a computing system capable ofimplementing aspects of the techniques and technologies presentedherein.

DETAILED DESCRIPTION

The following Detailed Description discloses techniques for enablingdynamic device interaction adaptation based on user engagement. Ingeneral, the techniques disclosed herein leverage sensors incommunication with a computer to determine a user's level of engagementwith one or more devices. As the user transitions his or her attentionto different devices, the computer can utilize different interactionmodels to assist the user in interacting with each device that meets athreshold level of engagement with the user. Individual interactionmodels can configure the computer to (1) direct input gestures receivedby the computing device to a selected device, and/or (2) adapt thecomputer's input modality to provide user interface controls that areoptimized for the selected device. When a person is interacting with twoor more devices, automatic transitions between different interactionmodels can help improve the user's interaction with each device.

While the subject matter described herein is presented in the generalcontext of program modules that execute in conjunction with theexecution of an operating system and application programs on a computersystem, those skilled in the art will recognize that otherimplementations can be performed in combination with other types ofprogram modules. Generally, program modules include routines, programs,components, data structures, and other types of structures that performparticular tasks or implement particular abstract data types. Moreover,those skilled in the art will appreciate that the subject matterdescribed herein can be practiced with other computer systemconfigurations, including hand-held devices, multiprocessor systems,microprocessor-based or programmable consumer electronics, computing orprocessing systems embedded in devices (such as wearables, automobiles,home automation etc.), minicomputers, mainframe computers, and the like.

Turning now to FIG. 1 through FIG. 4, several example implementationsare shown and described below. FIG. 1 illustrates an example where auser is interacting with a computer and a connected display screen.FIGS. 2A, 2B, and 2C illustrate an example where a user is interactingwith a computer and a remote computer. FIG. 3 illustrates an examplewhere a user is interacting with a computer and an embedded device. FIG.4 illustrates an example where a user is interacting with multipledevices, but none of the devices meet a threshold level of userengagement.

In the example of FIG. 1, the computer is in the form of a tablet 101having a touchscreen 103 for receiving input gestures of a user 106 andfor displaying content to the user 106. In this example, the tablet 101is in communication with a connected display screen 102. The tablet 101can utilize a first interaction model, e.g., a normal operating mode,when the user has a threshold level of interaction with the tablet 101.For instance, the tablet 101 utilizes a first interaction model when theuser 106 is looking at the tablet 101, e.g., when the user's gazedirection 105 is directed toward the tablet 101. While using the firstinteraction model, the tablet 101 can receive gestures on thetouchscreen 103 for interacting with applications executing of thetablet 101. As shown, when using the first interaction model, thetouchscreen 103 displays graphical user interfaces (GUIs), such as theuser interface 150, for applications executing on the tablet 101. TheGUIs can be displayed in association with any application executing atleast partially on the tablet 101, including applications or modulesthat are part of the tablet's operating system.

The tablet 101 can transition to another interaction model when the useris looking at another device. For instance, the tablet 101 utilizes asecond interaction model, when the user is looking at the display screen102, e.g., when the user's gaze direction 105 is directed toward thedisplay screen 102. While utilizing the second interaction model, thetablet 101 can display a customized UI that enables the user to interactwith the remote display screen 102. For instance, the tablet 101 candisplay borders of a touchpad and configure the touchscreen 103 toreceive a user input that is directed to a graphical user interfacedisplayed on the remote display screen. Thus, rendered gestures 107 canbe displayed on the display screen 102 and/or the touchscreen 103.

In the example of FIG. 2A, the computer is in the form of a tablet 101having a touchscreen 103 for receiving input gestures of a first user106A and for displaying content to the first user 106A. In this example,the tablet 101 is in communication with a remote computer 200 that is incommunication with a display screen 201. In this example, the tablet 101can operate using a first interaction model when the first user 106A islooking at the tablet 101, e.g., when the user's gaze direction 105 isdirected toward the tablet 101. While using the first interaction model,the tablet 101 can receive gestures on the touchscreen 103 forinteracting with applications executing of the tablet 101. As shown,when using the first interaction model, the touchscreen 103 displaysgraphical user interfaces (GUIs), such as the user interface 150, forapplications executing on the tablet 101. The GUIs can be displayed inassociation with any application executing at least partially on thetablet 101, including applications or modules that are part of thetablet's operating system.

In the example of FIG. 2A, the tablet 101 can transition to a secondinteraction model when the first user 106A looks at or near the remotecomputer 200 or the display screen 201, e.g., when the user's gazedirection 105 is directed toward the remote computer 200 or the displayscreen 201. While utilizing the second interaction model, the tablet 101can display a customized UI that enables the user to interact with theremote computer 200. For instance, the tablet 101 can display borders ofa touchpad and configure the touchscreen 103 to receive a user input,and direct the user input to the remote computer 200 for interactingwith a graphical user interface displayed on the display screen 201.Thus, rendered gestures 221 can be displayed on the display screen 201of the remote computer 200 and/or the touchscreen 103.

In the example of FIG. 2B, the touchscreen of the tablet 101 can displayat least one of the user interfaces 251 that is displayed on the displayscreen 201 of the remote computer 200. In this example, the userinterfaces 251 are displayed on the touchscreen of the tablet 101 andthe display screen 201 of the remote computer 200 in a mirrorconfiguration.

Also shown in FIG. 2B, the remote computer 200 can also receive an inputfrom a second user 106B. A rendered gesture 222 caused by the seconduser 106B can be displayed concurrently with rendered gestures 221provided by the first user 106A. In some configurations, while thetablet 101 is utilizing the second interaction model, the tablet 101 cansend instructions to the remote computer 200 that cause the remotecomputer 200 to display the rendered gestures of both users in acollaborative manner.

Now turning to FIG. 2C, aspects of other collaboration techniques areshown and described below. In some configurations, the techniquesdisclosed herein enable the input of one user to influence the input ofother users. For instance, in the scenario shown in FIG. 2C, inputgestures provided by a first user 106A can influence the input gesturesprovided a second user 106B. For illustrative purposes, the followingexamples show how the input provided by one user can be used to specifyan object and input provided by other users can be used to interact withthe object. In other examples, the input provided by one user canspecify an action to perform and the input from other users can carryout the action. These examples are provided for illustrative purposesand are not to be construed as limiting. The techniques disclosed hereinapply to any type of input provided by two or more users where the inputfrom one user influences the input of one or more other users.

In the system shown in FIG. 2C, there are three possible interactionmodels for the tablet 101. First, when the first user 106A looks at thetablet 101, the user's signals are interpreted one way and the tablet101 utilizes a first interaction model. When the first user 106A looksat the hub computer 200, the user's signals are interpreted a second wayand the tablet 101 utilizes a second interaction model. In addition,when the first user 106A looks at the hub computer 200 while a seconduser 106B is interacting with the hub computer 200, the user's signalsare interpreted a third way and the tablet 101 utilizes a thirdinteraction model.

When the first user 106A looks at the tablet 101, the tablet 101utilizes the first interactive model, and the tablet 101 enables thefirst user 106A to interact with applications executing on the tablet101. When the first user 106A looks at the hub computer 200 without athreshold of activity of another user, the tablet 101 may utilize thesecond interactive model, and the tablet 101 enables the first user 106Ato interact with the applications executing on the hub computer 200.

However, when the first user 106A looks at the hub computer 200 whilethe second user 106B is interacting with the hub computer 200, thetablet 101 may utilize a third interactive model that enables the firstuser 106A to assist the second user 106B in providing input to the hubcomputer 200. The third interactive model can be invoked by one or morefactors, e.g., when the second user 106B is looking at the hub computer200, when the second user 106B is providing input to the hub computer200, when the second user is looking at a display screen incommunication with the hub computer 200, etc. These examples areprovided for illustrative purposes and are not to be construed aslimiting. Any type of input of the first user 106A and the second user106B that is provided to a common computing device can invoke the use ofthe third interaction model.

While utilizing the third interactive model, input from one user can beused to specify an object and input from the second user can be used tomodify the object. In another example, one user can specify an action toperform and the input from the second user can carry out the action. Inone illustrative example, when utilizing the third interactive model,the first tablet 101A may display control elements 150A enabling thefirst tablet 101A to function as a pointing device for selecting anobject, and the second tablet 101B may display control elements 150Benabling the second tablet to function as an input device modifying theselected object. With reference to FIG. 2C, in one non-limiting example,input from the first user 106A can be used to specify a section of textand the input from the second user 106B can be used to edit the text. Insuch an example, first user 106A and the second user 106B can providetheir input directly to the hub computer 200 or by the use of theirrespective tablets 101A and 101B.

In another example, one user can point to an object and other users canresize the object. In yet another example, two or more users can provideinput gestures to perform a single action or function. For instance,when resizing an object displayed on the hub computer 200, one personcan grab one corner of the object and another person can grab anothercorner of the object. The two users can act in concert to resize orotherwise manipulate the object by providing simultaneous or nearsimultaneous input gestures. These examples are provided forillustrative purposes and are not to be construed as limiting. It can beappreciated that the techniques disclosed herein can utilize anyinteraction model where the input gestures of one user is used to assistor influence input gestures received from another user. Further, it canbe appreciated that a single user can assist or influence the input of anumber of users.

Now turning to FIG. 3, an example where a user is interacting with acomputer and an embedded device is shown and described below. In theexample of FIG. 3, the computer is in the form of a tablet 101 having atouchscreen 103 for receiving input gestures of a user and fordisplaying content to the user 106. The tablet 101 is in communicationwith an embedded device 301 via a network.

The tablet 101 utilizes a first interaction model when the user islooking at the tablet 101, e.g., the user's gaze direction 105 isdirected toward the tablet 101. As described above, when using the firstinteraction model, the tablet 101 can receive gestures on thetouchscreen 103 for interacting with applications executing of thetablet 101. As shown, when using the first interaction model, thetouchscreen 103 displays graphical user interfaces (GUIs), such as theuser interface 150, for applications executing on the tablet 101. TheGUIs can be displayed in association with any application executing atleast partially on the tablet 101, including applications or modulesthat are part of the tablet's operating system.

The tablet 101 can transition to another interaction model when the useris looking at another device. For instance, the tablet 101 utilizes asecond interaction model, when the user is looking at the embeddeddevice 301, which in this example the user's gaze direction 105 isdirected to a lamp. While utilizing the second interaction model, thetablet 101 can display a customized UI that enables the user to interactwith the embedded device 301. For instance, the tablet 101 can display afirst control 311 for making an adjustment to the device, e.g., dimmingthe lamp, and a second control 312 for controlling the power of thedevice. The tablet 101 is configured such that the touchscreen 103receives a user input and directs the input to the embedded device 301.

In some scenarios, a computer may not be able to identify an object inthe user's gaze direction. When the computer cannot identify thespecific target device of a user, or when a user does not have athreshold of engagement with a specific target device, the computer canselect a default interaction model that is associated with a defaultfunction and directed to a predetermined device or service.

FIG. 4 shows an example where a default function may be selected when acomputer does not select a target device based on the signals of theuser's activity. In this example, the user 106 is surrounded by a numberof objects including a remote computer 200 and an embedded object 301.In this example, it is a given that the signals generated by one or moresensors do not indicate a gaze direction or otherwise do not identify atarget device, and the system utilizes a default interaction model.

When utilizing a default interaction model, a default function caninvolve simplistic functions such as volume control of the user'scomputer or another computer. When using the default interaction model,the computer can display any suitable user interface. For instance, auser interface of the user's computer can display graphic elements, suchas a volume control dial, and/or enable the user to provide an inputgesture to direct any default functionality. When using the defaultinteraction model, the computer can direct the received user input toany computing device or service associated with the defaultfunctionality.

In another illustrative example, a default interaction model may allow acomputer to interact with a remote service such as Google Voice orAmazon's Echo service. In such scenarios, the user's computer candisplay graphical elements to enable a user to provide an input for suchservices. In addition, the default interaction model causes the computerto direct any user input, such as voice commands, to the selectedservices.

In some configurations, a computer can enable buffer zones to smooth thetransitions between input modes, thereby providing a more stableoperating environment for the user. In such configurations, one or morethresholds can be used to identify and select an object that is in ornear the path of a user's gaze direction. The thresholds can bedynamically adjusted based on one or more factors. For instance, beforea system selects a device and a corresponding interaction model, thesystem may select a device that is closest to a user's gaze targetpoint. However, when a system has selected a device and a correspondinginteraction model, the system may require a higher threshold, e.g., athreshold requiring a more deliberate gaze direction or a moredefinitive target gaze point, before allowing a system to transitionfrom a selected device to another device.

In addition, or in the alternative, when a computer detects that a userhas transitioned his or her gaze direction from one device to another,the computer can delay the transition of the interaction model for apredetermined period of time. By dynamically adjusting a transitionthreshold and/or delaying a transition to select another device, asystem can mitigate inadvertent transitions between input modes.

Consider the example shown in FIG. 5, which shows three scenarios: afirst scenario (A) where the system has not selected a target device; asecond scenario (B) where the system has selected the second computer101B as the target device; and a third scenario (C) where the system hasselected the first computer 101A as the target device. For illustrativepurposes, a gaze target 501, also referred to herein as a “gaze targetpoint 501,” is a given point in space along a user's gaze direction. Aselection boundary 502 can be a point in space, or several points inspace, that defines a threshold used to select a device based on auser's gaze direction or a gaze target 501.

In the first scenario, the system may obtain data defining a selectionboundary 502 that is positioned at a mid-point between the firstcomputer 101A and the second computer 101B. For illustrative purposes,the selection boundary 502 can be at a first distance (D1) from a firstcomputing device 101A and the selection boundary 502 can be at a seconddistance (D2) from a second device 101B. The system may receive imagedata indicating a gaze direction and/or data indicating a gaze target501 of a user. The system may analyze the image data to identify andselect an object that meets a threshold level of user engagement.

In Scenario A shown on the top of FIG. 5, when the gaze target 501 isbetween the selection boundary 502 and the first computer 101A, thesystem can determine that the object that meets the threshold level ofuser engagement is the first computer 101A. In addition, when the gazetarget 501 is between the selection boundary 502 and the second computer101B, the system can determine that the object that meets the thresholdlevel of user engagement is the second computer 101B.

Once the system selects a particular device, the system can adjust thelocation of the selection boundary 502. For instance, as shown inScenario B shown on the middle of FIG. 5, when the second computer 101Bis selected, e.g., the user has engaged with the second computer 101Band the user's computer is utilizing an interaction model for the secondcomputer 101B, the selection boundary 502 can be adjusted to be furtherfrom the second computer 101B and closer to the first computer 101A. Asshown, the first distance (D1) is shorter than the second distance (D2).This dynamic adjustment requires the user to have a more deliberateaction or a higher level of engagement with the first computer 101Abefore the user's computer can transition from the interaction model ofthe second computer 101B to the interaction model for the first computer101A. As shown, the system requires the gaze target 501 of the user tobe closer to the first device in order to transition the user engagementfrom the second device 101B to the first device 101A.

Similarly, as shown in Scenario C on the bottom of FIG. 5, when thefirst computer 101A is selected, the selection boundary 502 can beadjusted to be further from the first computer 101B and closer to thesecond computer 101B. As shown, the first distance (D1) is longer thanthe second distance (D2). Again, this automatic adjustment requires theuser to have a more deliberate action or a higher level of engagementwith the second computer 101B before the computer can transition fromthe interaction model of the first computer 101A to the interactionmodel of the second computer 101B. This adjustment of the selectionboundary 502 enables the system to require the gaze target 501 of theuser to be closer to the second device in order to transition the userengagement from the first device 101A to the second device 101B.

Now turning to FIG. 6, aspects of various sources of user signals isshown and described below. As summarized above, signals and dataindicating a user's level of engagement can come from a number ofsources. In one example, a user's level of engagement can be based onimage data indicating a user's gaze direction. A computer system cananalyze image data to identify an object that the user is looking at,and identify a level of engagement with that object. In someconfigurations, image data can be generated by a camera 601. A camera601 can be mounted to the computing device 101 associated with the user106 or the camera 601 can be mounted to a remote computing device 200.Image data or signals can also be generated by a standalone camera 601′in communication with the computing device 101.

In another example, a user's level of engagement with a device can bebased on location data generated by a location device 603, such as a GPSdevice or Wi-Fi device. Such devices can indicate a location of a remotedevice relative to another object. In one illustrative example, if theuser is looking at a location between the light 301 and the displaydevice 102, location data from each device may be used to determine thatthe user may have a higher level of engagement with the light 301 basedon its location relative to the computing device 101 or the user 106.Such data can be used to identify the user's level of engagement with adevice and to select one of the devices and a corresponding interactionmodel.

In yet another example, a user's level of engagement with a device canbe based on audio signals. For example, the light 301 and the displaydevice 102 can comprise audio devices 605 for producing audio signals.The audio signals can be coordinated with timed pulses, such as a ping,to allow the computing device 101 to receive the audio signals using amicrophone 607, and determine which device is closer. Such signals canbe used to identify the user's level of engagement with a device and toselect one of the devices and a corresponding interaction model.

In other examples, contextual data such as preference data or historicaldata can be utilized to determine a user's level of engagement with adevice. For example, if the user 106 routinely interacts with the light301 and rarely interacts with the remote computer 200, data definingsuch activity can be used to identify the user's level of engagementwith a device and to select one device and a corresponding interactionmodel.

A user's preference data can also be used in a similar manner. Forexample, a user preference data can indicate a ranking of differentdevices. Such data can be used to identify the user's level ofengagement with a device and to select one of the devices and acorresponding interaction model. For instance, the user may rank theremote computer 200 higher than the light 301. Such examples describedabove can be used as a supplemental signal to assist in theidentification of the object in the gaze direction.

These examples are provided for illustrative purposes and are not to beconstrued as limiting. Any signal or data, such as radio signals, sonarsignals and IR signals, can be utilized to determine the user's level ofengagement with a device. In addition, any data or signal can beutilized as a primary signal or a secondary signal. In someconfigurations, secondary signals can be utilized as a tiebreaker when aprimary signal indicates that two or more devices are of substantiallyequal focus of a user. The secondary signals, or supplemental signaldata, can be utilized to improve a system's accuracy in determining auser's level of engagement with a device.

In addition to the sensors and devices shown in FIG. 6, the techniquesdisclosed herein can also utilize wearable devices to produce one ormore signals that indicate a user's focus. FIG. 7 illustrates oneexample of a wearable device 700 that can be utilized to determine auser's level of engagement with a device. As shown, a front-view of anexample implementation of a mixed reality (“MR”) headset orNear-Eye-Display (“NED”) device is shown. In this example, device 700incorporates an optical system 702 that includes an illumination engine704 to generate electro-magnetic (“EM”) radiation that includes both afirst bandwidth for generating computer-generated (“CG”) images and asecond bandwidth for tracking physical objects.

The first bandwidth may include some or all of the visible-light portionof the EM spectrum whereas the second bandwidth may include any portionof the EM spectrum that is suitable to deploy a desired trackingprotocol. In this example, the optical system 702 further includes anoptical assembly 706 that is positioned to receive the EM radiation fromthe illumination engine 704 and to direct the EM radiation (orindividual bandwidths of thereof) along one or more predeterminedoptical paths. For example, the illumination engine 704 may emit the EMradiation into the optical assembly 706 along a common optical path thatis shared by both the first bandwidth and the second bandwidth. Theoptical assembly 706 may also include one or more optical componentsthat are configured to separate the first bandwidth from the secondbandwidth (e.g., by causing the first and second bandwidths to propagatealong different image-generation and object-tracking optical paths,respectively).

The optical assembly 706 includes one or more micromechanical system(“MEMS”) scanners that are configured to direct the EM radiation withrespect to one or more components of the optical assembly 706 and, morespecifically, to direct the first bandwidth for image-generationpurposes and to direct the second bandwidth for object-trackingpurposes. In this example, the optical system 702 includes a sensor 708to generate object data in response to a reflected-portion of the secondbandwidth, i.e. a portion of the second bandwidth that is reflected offan object 710 that exists within a real-world environment 712. Suchsensors can determine a user's gaze direction or a gaze target of auser. Also, such sensors can be used to identify an object by the use ofan image profile or other forms of data analysis.

In some examples, the device 700 may utilize the optical system 702 togenerate a composite view (e.g., from the perspective of a user that iswearing the Device 700) that includes both one or more CG images and aview of at least a portion of the real-world environment 712 thatincludes the object 710. For example, the optical system 702 may utilizevarious technologies such as, for example, AR technologies to generatecomposite views that include CG images superimposed over a real-worldview. As such, the optical system 702 may be configured to generate CGimages via a display panel 714.

In the illustrated example, the display panel 714 includes separateright eye and left eye transparent display panels, labeled 714R and714L, respectively. In some examples, the display panel 714 may includea single transparent display panel that is viewable with both eyesand/or a single transparent display panel that is viewable by a singleeye only. Therefore, it can be appreciated that the techniques describedherein may be deployed within a single-eye Near Eye Display (NED) system(e.g. GOOGLE GLASS) and/or a dual-eye NED system (e.g. MICROSOFTHOLOLENS). The Device 700 is an example device that is used to providecontext and illustrate various features and aspects of the userinterface display techniques and systems disclosed herein. Other devicesand systems, such as VR systems, may also use the interface displaytechniques and systems disclosed herein. The device 700 can also havesensors pointing to the eyes of the user to determine a gaze direction.

In some examples, the display panel 714 may be a waveguide display thatincludes one or more diffractive optical elements (“DOEs”) forin-coupling incident light into the waveguide, expanding the incidentlight in one or more directions for exit pupil expansion, and/orout-coupling the incident light out of the waveguide (e.g., toward auser's eye). In some examples, the device 700 may further include anadditional see-through optical component 716, shown in FIG. 7 in theform of a transparent veil or visor 716 positioned between thereal-world environment 712 (which real-world environment makes up nopart of the claimed invention) and the display panel 714.

It can be appreciated that the transparent veil 716 may be included inthe Device 700 for purely aesthetic and/or protective purposes. TheDevice 700 may further include various other components, for examplespeakers, microphones, accelerometers, gyroscopes, magnetometers,temperature sensors, touch sensors, biometric sensors, other imagesensors, energy-storage components (e.g. battery), a communicationfacility, a GPS receiver, etc. Each device can be used to determine auser's gaze direction and/or data that identifies an object that thatthe user is focused on.

In the illustrated example, a controller 718 is operatively coupled toeach of the illumination engine 704, the optical assembly 706 and thesensor 708. The controller 718 includes one or more logic devices andone or more computer memory devices storing instructions executable bythe logic device(s) to deploy functionalities described herein withrelation to the optical system 702, such as the user interface examplesdiscussed above. The controller 718 can comprise one or more processingunits 720, one or more computer-readable media 722 for storing anoperating system 724 and data such as, for example, image data thatdefines one or more CG images and/or tracking data that defines one ormore object tracking protocols. The user interface, as discussed above,is one example of the CG images that may be generated by the controller718.

The computer-readable media 722 may further include an image-generationengine 726 that generates output signals to modulate generation of thefirst bandwidth of EM radiation by the illumination engine 704 and alsoto control the MEMS scanner(s) to direct the first bandwidth within theoptical assembly 706. Ultimately, the MEMS scanner(s) direct the firstbandwidth through the display panel 714 to generate CG images that areperceptible to a user, such as a user interface.

The computer-readable media 722 may further include an object-trackingengine 728 that generates output signals to modulate generation of thesecond bandwidth of EM radiation by the illumination engine 704 and alsothe MEMS scanner(s) to direct the second bandwidth along anobject-tracking optical path to irradiate the object 710. The objecttracking engine 728 communicates with the sensor 708 to receive theobject data that is generated based on the reflected-portion of thesecond bandwidth.

The object tracking engine 728 then analyzes the object data todetermine one or more characteristics of the object 710 such as, forexample, a depth of the object 710 with respect to the optical system702, an orientation of the object 710 with respect to the optical system702, a velocity and/or acceleration of the object 710 with respect tothe optical system 702, or any other desired characteristic of theobject 710, such as the object's location. The components of the Device700 are operatively connected, for example, via a bus 730, which caninclude one or more of a system bus, a data bus, an address bus, a PCIbus, a Mini-PCI bus, and any variety of local, peripheral, and/orindependent buses.

The processing unit(s) 720, can represent, for example, a CPU-typeprocessing unit, a GPU-type processing unit, a field-programmable gatearray (“FPGA”), another class of digital signal processor (DSP), orother hardware logic components that may, in some instances, be drivenby a CPU. For example, and without limitation, illustrative types ofhardware logic components that can be used include Application-SpecificIntegrated Circuits (“ASICs”), Application-Specific Standard Products(“ASSPs”), System-on-a-Chip Systems (“SOCs”), Complex Programmable LogicDevices (“CPLDs”), etc.

As used herein, computer-readable media, such as computer-readable media722, can store instructions executable by the processing unit(s) 720.Computer-readable media can also store instructions executable byexternal processing units such as by an external CPU, an external GPU,and/or executable by an external accelerator, such as an FPGA typeaccelerator, a DSP type accelerator, or any other internal or externalaccelerator. In various examples, at least one CPU, GPU, and/oraccelerator is incorporated in a computing device, while in someexamples one or more of a CPU, GPU, and/or accelerator is external to acomputing device.

Computer-readable media can include computer storage media and/orcommunication media. Computer storage media can include one or more ofvolatile memory, nonvolatile memory, and/or other persistent and/orauxiliary computer storage media, removable and non-removable computerstorage media implemented in any method or technology for storage ofinformation such as computer-readable instructions, data structures,program modules, or other data. Thus, computer storage media includestangible and/or physical forms of media included in a device and/orhardware component that is part of a device or external to a device,including but not limited to random access memory (“RAM”), staticrandom-access memory (“SRAM”), dynamic random-access memory (“DRAM”),phase change memory (“PCM”), read-only memory (“ROM”), erasableprogrammable read-only memory (“EPROM”), electrically erasableprogrammable read-only memory (“EEPROM”), flash memory, rotating media,optical cards or other optical storage media, magnetic storage, magneticcards or other magnetic storage devices or media, solid-state memorydevices, storage arrays, network attached storage, storage areanetworks, hosted computer storage or any other storage memory, storagedevice, and/or storage medium that can be used to store and maintaininformation for access by a computing device.

In contrast to computer storage media, communication media can embodycomputer-readable instructions, data structures, program modules, orother data in a modulated data signal, such as a carrier wave, or othertransmission mechanism. As defined herein, computer storage media doesnot include communication media. That is, computer storage media doesnot include communications media consisting solely of a modulated datasignal, a carrier wave, or a propagated signal, per se.

Although the various configurations have been described in languagespecific to structural features and/or methodological acts, it is to beunderstood that the subject matter defined in the appendedrepresentations is not necessarily limited to the specific features oracts described. Rather, the specific features and acts are disclosed asexample forms of implementing the claimed subject matter. The claimedsubject matter may be embodied in other ways, may include differentelements or operations, and may be used in conjunction with otherexisting or future technologies. This description should not beinterpreted as implying any particular order or arrangement among orbetween various operations or elements except when the order ofindividual operations or arrangement of elements is explicitlydescribed.

Turning now to FIG. 8, aspects of a routine 800 for enabling dynamicinteraction adaptation of a system based on user engagement are shownand described below. It should be understood that the operations of themethods disclosed herein are not necessarily presented in any particularorder and that performance of some or all of the operations in analternative order(s) is possible and is contemplated. The operationshave been presented in the demonstrated order for ease of descriptionand illustration. Operations may be added, omitted, and/or performedsimultaneously, without departing from the scope of the appended claims.

It also should be understood that the illustrated methods can end at anytime and need not be performed in its entirety. Some or all operationsof the methods, and/or substantially equivalent operations, can beperformed by execution of computer-readable instructions included on acomputer-storage media, as defined below. The term “computer-readableinstructions,” and variants thereof, as used in the description andclaims, is used expansively herein to include routines, applications,application modules, program modules, programs, components, datastructures, algorithms, and the like. Computer-readable instructions canbe implemented on various system configurations, includingsingle-processor or multiprocessor systems, minicomputers, mainframecomputers, personal computers, hand-held computing devices,microprocessor-based, programmable consumer electronics, combinationsthereof, and the like.

Thus, it should be appreciated that the logical operations describedherein are implemented (1) as a sequence of computer implemented acts orprogram modules running on a computing system and/or (2) asinterconnected machine logic circuits or circuit modules within thecomputing system. The implementation is a matter of choice dependent onthe performance and other requirements of the computing system.Accordingly, the logical operations described herein are referred tovariously as states, operations, structural devices, acts, or modules.These operations, structural devices, acts, and modules may beimplemented in software, in firmware, in special purpose digital logic,and any combination thereof.

For example, the operations of the routine 800 are described herein asbeing implemented, at least in part, by one or more modules of acomputing system, such as components of an operating system or any othermodule or engine disclosed herein. In some configurations, the one ormore modules of a computing system can be, for example, a dynamicallylinked library (DLL), a statically linked library, functionalityproduced by an application programing interface (API), a compiledprogram, an interpreted program, a script or any other executable set ofinstructions. Data can be stored in a data structure in one or morememory components. Data can be retrieved from the data structure byaddressing links or references to the data structure.

Although the following illustration refers to the components of theFIGURES, it can be appreciated that the operations of the routine 800may be also implemented in many other ways. For example, the routine 800may be implemented, at least in part, by a processor of another remotecomputer or a local circuit. In addition, one or more of the operationsof the routine 800 may alternatively or additionally be implemented, atleast in part, by a chipset working alone or in conjunction with othersoftware modules. In the example described below, one or more modules ofa computing system can receive and/or process the data disclosed herein.Any service, circuit or application suitable for providing thetechniques disclosed herein can be used in operations described herein.

With reference to FIG. 8, the routine 800 begins at operation 801 whereone or more modules of a computing system can receive one or moresignals indicating a user's level of engagement with a device. Signalscan include electronic signals, image data or other data indicating auser's focus of engagement. Image data can be generated by one or morecameras and provided to the computing system. Image data can indicate agaze direction of a user, or the image data can identify an object thatis within the user's gaze direction. The one or more signals can bereceived from any number of resources. For example, signals can comefrom a location device such as a GPS device or a Wi-Fi device, aspeaker, transmitter, etc. Signals can also originate from data filessuch as a preference file.

Next, at operation 803, one or more modules of a computing system cananalyze the received signals to identify an object based on a user'slevel of engagement with a device. In some configurations, the computingsystem processes image data and other data to identify an object in theuser's gaze direction. The object can be identified by the use of anumber of techniques including but not limit to image profile detectionbased on the shape of a device, tags on a device having unique visualidentifiers, radio signals that include the use of RFIDs to identify anobject, etc.

Primary and secondary signals can be analyzed to identify an object.Thus, image data indicating a user's gaze direction can be supplementedby other signals such as location data or preference data to identify anobject based on a user's focus of engagement. In addition, data definingsupplemental signals from a machine learning engine can be used toidentify an object based on a user's focus of engagement. Next, inresponse to identifying an object, the computer can select one or moreinteraction models that accommodates the functionality of the identifiedobject.

For instance, in operation 805, when the object is the user's computer,the computer selects a first interaction model. In one illustrativeexample, if the computer is a tablet and the user is looking at thetablet, the computer selects an interaction model that accommodates thefunctionality of the tablet. Thus, in operation 806, the computer candisplay a user interface of an application executing on the computer.The application can include components of the computer's operatingsystem or components of a standalone application, such as a productivityapplication. In addition, in operation 807, the computer can direct theuser input received at the computing device to the application.

In operation 808, when the object is an embedded device, the computerselects a second interaction model. In one illustrative example, whenthe user is looking at an object, such as a lamp, the computer selectsan interaction model that accommodates the functionality of the lamp.For instance, in operation 809, an interface of the user's computer maydisplay graphical elements for allowing the user to touch or otherwiseprovide an input gesture in relation to the graphical elements tocontrol, e.g., dim or turn on/off, the lamp. In addition, in operation810, the computer can direct the received user input to the lamp.

In operation 811, when the object is a remote computer, the computer canselect a third interaction model. In one illustrative example, when theuser looking at a remote computer or a display of the remote computer,the computer can select an interaction model that accommodates thefunctionality of the remote computer. For instance, in operation 812, aninterface of the user's computer may display graphic elements forallowing the user to touch or otherwise provide an input gesture inrelation to the graphical elements to control, e.g., dim or turn on/off,the remote computer. In addition, in operation 813, the computer candirect the received user input to the remote computer.

In operation 811, when the computer cannot identify the object, thecomputer can select a default interaction model. In one illustrativeexample, a user may be looking toward a person or a wall. In thissituation, the computer can select a default function. As describedherein, the default function can be related to the computing device oranother computing device. In one example, the default function caninvolve simplistic functions, such as volume control of the user'scomputer or another computer. When in the default interaction model, thecomputer can display any suitable user interface. For instance, inoperation 815, an interface of the user's computer may display graphicelements for allowing the user to touch or otherwise provide an inputgesture in relation to any default functionality. In addition, inoperation 816, the computer can direct the received user input to anycomputing device or service associated with the default functionality.

In one illustrative example, a default interaction model may allow acomputer to interact with a remote service such as Google Home orAmazon's Echo service. In such a scenario, the user's computer candisplay graphical elements that enable a user to provide an input forsuch services. In addition, microphones or other sensors may beactivated to enable the user to provide voice inputs or other forms ofhuman gestures associated with a predetermined input. In addition, thedefault interaction model causes the computer to direct any user inputto the selected services.

Next, at operation 817, one or more modules of a computing system cangenerate supplemental signal data based on the user activity and theselections of the interaction models. In operation 817, a computer candeploy a machine learning engine to analyze input signals defining useractivity to generate supplemental signal data for improving futureprocessing of the routine 800. In some embodiments, a computer canemploy supervised learning wherein one or more processes generatelabeled training data. For example, one or more input signals can beused as training data for a machine learning engine, which can be in anycomponent of the operating system or part of another engine disclosedherein. Then, a machine learning engine may analyze previous instancesof input signals to identify correlations between specificcharacteristics of the previous instances of input signals and changesto the input signals. A number of machine learning techniques may beutilized, such as unsupervised learning, semi-supervised learning,classification analysis, regression analysis, clustering, etc. One ormore predictive models may also be utilized, such as a group method ofdata handling, Naïve Bayes, k-nearest neighbor algorithm, majorityclassifier, support vector machines, random forests, boosted trees,Classification and Regression Trees (CART), neural networks, ordinaryleast square, and so on. Next, the routine 800 can continue back tooperation 801, where the computer can continue to receive and monitorone or more signals to identify an object and select an interactionmodel for the computer.

FIG. 9 is a computer architecture diagram that shows an architecture fora computer 900, e.g., the computer 101, capable of executing thesoftware components described herein. The architecture illustrated inFIG. 9 is an architecture for a server computer, mobile phone, ane-reader, a smart phone, a desktop computer, a netbook computer, atablet computer, a wearable device, a laptop computer, or another typeof computing device suitable for executing the software componentspresented herein.

In this regard, it should be appreciated that the computer 900 shown inFIG. 9 can be utilized to implement a computing device capable ofexecuting any of the software components presented herein. For example,and without limitation, the computing architecture described withreference to FIG. 9 can be utilized to implement the computing device101 illustrated in FIG. 1 and described above, which is capable ofexecuting an operating system 990, applications 991, and the machinelearning engine 992 and/or any of the other software componentsdescribed above.

The computer 900 illustrated in FIG. 9 includes a central processingunit 902 (“CPU”), a system memory 904, including a random-access memory906 (“RAM”) and a read-only memory (“ROM”) 908, and a system bus 910that couples the memory 904 to the CPU 902. A basic input/output system(“BIOS” or “firmware”) containing the basic routines that help totransfer information between elements within the computer 900, such asduring startup, is stored in the ROM 908. The computer 900 furtherincludes a mass storage device 912 for storing the operating system 990,the applications 991, and the machine learning engine 992 and othercomponents for implementing the techniques disclosed herein. The massstorage device 912 can also be configured to store other types ofprograms and data.

The mass storage device 912 is connected to the CPU 902 through a massstorage controller (not shown) connected to the bus 910. The massstorage device 912 and its associated computer readable media providenon-volatile storage for the computer 900. Although the description ofcomputer readable media contained herein refers to a mass storagedevice, such as a hard disk, CD-ROM drive, DVD-ROM drive, or USB storagekey, it should be appreciated by those skilled in the art that computerreadable media can be any available computer storage media orcommunication media that can be accessed by the computer 900.

Communication media includes computer readable instructions, datastructures, program modules, or other data in a modulated data signalsuch as a carrier wave or other transport mechanism and includes anydelivery media. The term “modulated data signal” means a signal that hasone or more of its characteristics changed or set in a manner so as toencode information in the signal. By way of example, and not limitation,communication media includes wired media such as a wired network ordirect-wired connection, and wireless media such as acoustic, radiofrequency, infrared and other wireless media. Combinations of any of theabove should also be included within the scope of computer readablemedia.

By way of example, and not limitation, computer storage media caninclude volatile and non-volatile, removable and non-removable mediaimplemented in any method or technology for storage of information suchas computer readable instructions, data structures, program modules orother data. For example, computer storage media includes, but is notlimited to, RAM, ROM, EPROM, EEPROM, flash memory or other solid-statememory technology, CD-ROM, digital versatile disks (“DVD”), HD-DVD,BLU-RAY, or other optical storage, magnetic cassettes, magnetic tape,magnetic disk storage or other magnetic storage devices, or any othermedium that can be used to store the desired information and which canbe accessed by the computer 900. For purposes of the claims, the phrase“computer storage medium,” and variations thereof, does not includewaves or signals per se or communication media.

According to various configurations, the computer 900 can operate in anetworked environment using logical connections to remote computersthrough a network such as the network 918. The computer 900 can connectto the network 918 through a network interface unit 920 connected to thebus 910. It should be appreciated that the network interface unit 920can also be utilized to connect to other types of networks and remotecomputer systems. The computer 900 can also include an input/outputcontroller 916 for receiving and processing input from a number of otherdevices, including a keyboard, mouse, touch input, or electronic stylus(not shown in FIG. 9). Similarly, the input/output controller 916 canprovide output to a display screen, a printer, or other type of outputdevice (also not shown in FIG. 9).

It should be appreciated that the software components described herein,such as the operating system 990, the applications 991, and the machinelearning engine 992, when loaded into the CPU 902 and executed, cantransform the CPU 902 and the overall computer 900 from ageneral-purpose computing system into a special-purpose computing systemcustomized to facilitate the functionality presented herein. The CPU 902can be constructed from any number of transistors or other discretecircuit elements, which can individually or collectively assume anynumber of states. More specifically, the CPU 902 can operate as afinite-state machine, in response to executable instructions containedwithin the software modules disclosed herein. These computer-executableinstructions can transform the CPU 902 by specifying how the CPU 902transitions between states, thereby transforming the transistors orother discrete hardware elements constituting the CPU 902.

Encoding the software modules presented herein can also transform thephysical structure of the computer readable media presented herein. Thespecific transformation of physical structure depends on variousfactors, in different implementations of this description. Examples ofsuch factors include, but are not limited to, the technology used toimplement the computer readable media, whether the computer readablemedia is characterized as primary or secondary storage, and the like.For example, if the computer readable media is implemented assemiconductor-based memory, the software disclosed herein can be encodedon the computer readable media by transforming the physical state of thesemiconductor memory. For instance, the software can transform the stateof transistors, capacitors, or other discrete circuit elementsconstituting the semiconductor memory. The software can also transformthe physical state of such components in order to store data thereupon.

As another example, the computer readable media disclosed herein can beimplemented using magnetic or optical technology. In suchimplementations, the software presented herein can transform thephysical state of magnetic or optical media, when the software isencoded therein. These transformations can include altering the magneticcharacteristics of particular locations within given magnetic media.These transformations can also include altering the physical features orcharacteristics of particular locations within given optical media, orto change the optical characteristics of those locations. Othertransformations of physical media are possible without departing fromthe scope and spirit of the present description, with the foregoingexamples provided only to facilitate this discussion.

In light of the above, it should be appreciated that many types ofphysical transformations take place in the computer 900 in order tostore and execute the software components presented herein. It alsoshould be appreciated that the architecture shown in FIG. 9 for thecomputer 900, or a similar architecture, can be utilized to implementother types of computing devices, including hand-held computers,embedded computer systems, mobile devices such as smartphones andtablets, and other types of computing devices known to those skilled inthe art. It is also contemplated that the computer 900 might not includeall of the components shown in FIG. 9, can include other components thatare not explicitly shown in FIG. 9, or can utilize an architecturecompletely different than that shown in FIG. 9.

In closing, although the various configurations have been described inlanguage specific to structural features and/or methodological acts, itis to be understood that the subject matter defined in the appendedrepresentations is not necessarily limited to the specific features oracts described. Rather, the specific features and acts are disclosed asexample forms of implementing the claimed subject matter.

1. A computing device, comprising: one or more processors; a touchscreenfor displaying graphical user interfaces and for receiving inputgestures from a user to the computing device; a memory in communicationwith the one or more processors, the memory having computer-readableinstructions stored thereupon which, when executed by the one or moreprocessors, cause the computing device to: receive image data from oneor more sensors, wherein the image data indicates a gaze direction ofthe user; analyze the image data to determine an identity of an objectin the gaze direction; in response to determining that the object is thecomputing device, selecting a first interaction model, wherein the firstinteraction model comprises displaying a first user interface of anapplication module on the touchscreen and causing the touchscreen toreceive user gestures for providing input to the application moduleexecuting on the computing device; and in response to determining thatthe object is a remote device in communication with the computingdevice, selecting a second interaction model, wherein the secondinteraction model causes the touchscreen to receive user gestures forproviding input to the remote device, wherein the second interactionmodel causes a display of a second user interface that is configured andarranged according to functions of the remote device.
 2. The computingdevice of claim 1, wherein the instructions further cause the computingdevice to: receive supplemental signals from one or more sensors,wherein the supplemental signals are generated by at least one of alocation device, an audio generator, an infrared signal generator, or asonar signal genitor, wherein the supplemental signals indicate alocation of the remote device; analyze the supplemental signals toassist in the identification of the object in the gaze direction; anddetermine that the object is the remote device when the supplementalsignals indicate that an interaction of the user is focused on theremote device over the computing device.
 3. The computing device ofclaim 1, wherein the remote device is a display screen in communicationwith the computing device, and wherein the second interaction modelcauses the computing device to display an indication of the inputgestures received at the touchscreen on a graphical user interfacerendered on the display screen.
 4. The computing device of claim 1,wherein the remote device is a remote computer in communication with adisplay screen, and wherein the second interaction model causes thecomputing device to communicate the input gestures received at thetouchscreen to the remote computer, the remote computer displaying anindication of the input gestures received at the touchscreen on agraphical user interface rendered on the display screen.
 5. Thecomputing device of claim 4, wherein the second interaction model causesthe computing device to display a mirror of the graphical user interfacerendered on the touchscreen, and wherein the second interaction modelcauses the computing device to display the indication of the inputgestures on the touchscreen.
 6. The computing device of claim 5, whereinthe second interaction model causes the computing device to sendinstructions to the remote computer that cause the remote computer todisplay an indication of an input gesture of a second user received atthe remote computer concurrently with the display of the indication ofthe input gestures received at the touchscreen.
 7. The computing deviceof claim 1, wherein the instructions further cause the computing deviceto determine that the object is the remote device and that a second useris interacting with the remote device, selecting a third interactionmodel, wherein the third interaction model causes the touchscreen toreceive user gestures for providing input to the remote device toinfluence an input of a second user providing input to the remotedevice.
 8. The computing device of claim 1, wherein the remote device isan embedded device, and wherein the second interaction model causes thecomputing device to communicate the input gestures received at thetouchscreen to the embedded device, the input gestures causing theembedded device to perform a function of the embedded device in responseto the input gestures.
 9. The computing device of claim 1, wherein thesecond interaction model causes the computing device to displaygraphical user interface controls that enable the user to provide theinput gestures for invoking the function of the embedded device.
 10. Thecomputing device of claim 1, wherein the instructions further cause thecomputing device to: in response to determining that the object is anunidentified object, selecting a default interaction model, wherein thedefault interaction model causes the computing device to displaygraphical user interface controls that enable the user to provide theinput gestures for invoking a default function, and processing the inputgestures for invoking the default function.
 11. The computing device ofclaim 10, wherein the default function comprises sending commands to aremote service, wherein processing the input gestures for invoking thedefault function comprises transmitting commands based on the inputgestures to the remote service.
 12. The computing device of claim 1,wherein the instructions further cause the computing device to: generatesupplemental signal data defining patterns of user engagement with thecomputing device and the remote device over time, wherein analyzing theimage data to identify the object in the gaze direction furthercomprises analysis of the supplemental signal data defining patterns ofuser engagement with the computing device and the remote device overtime.
 13. The computing device of claim 1, wherein the instructionsfurther cause the computing device to obtain data defining a selectionboundary that is positioned at a mid-point between the computing deviceand the remote device, wherein analyzing the image data to identify anobject in the gaze direction comprises: determining a gaze target of theuser; determining that the object is the computing device when the gazetarget is between the selection boundary and the computing device; anddetermining that the object is the remote device when the gaze target isbetween the selection boundary and the remote device.
 14. The computingdevice of claim 13, wherein the selection boundary is at a firstdistance from the computing device and the selection boundary is at asecond distance from the remote device, and wherein the instructionsfurther cause the computing device to: adjust the selection boundary bydetermining that the first distance (D1) is shorter than the seconddistance (D2) when the first interaction model is selected; and adjustthe selection boundary by determining that the second distance (D2) isshorter than the first distance (D1) when the second interaction modelis selected.
 15. A method, comprising: receiving image data, at thecomputing device, from one or more sensors, wherein the image dataindicates a gaze direction of a user, the computing device comprising atouchscreen for displaying graphical user interfaces and for receivinginput gestures from a user to the computing device; analyzing the imagedata to select the computing device or a remote device in communicationwith the computing device, wherein the computing device is selected whenthe gaze direction is directed to the computing device, and wherein theremote device is selected when the gaze direction is directed to theremote device; in response to determining that the gaze direction isdirected to the computing device, selecting the computing device and afirst interaction model, wherein the first interaction model comprisesdisplaying a first user interface of an application module on thetouchscreen and causing the touchscreen to receive user gestures forproviding input to the application module executing on the computingdevice; and in response to determining that the gaze direction isdirected to the remote device, selecting the remote device and a secondinteraction model, wherein the second interaction model causes thetouchscreen to receive user gestures for providing input to the remotedevice, wherein the second interaction model causes a display of asecond user interface that is configured and arranged according tofunctions of the remote device.
 16. The method of claim 15, furthercomprising: receiving supplemental signals from one or more sensors,wherein the supplemental signals are generated by at least one of alocation device, an audio generator, an infrared signal generator, or asonar signal genitor, wherein the supplemental signals indicating alocation of the remote device; analyzing the supplemental signals toassist in the selection of the computing device or the remote device;selecting the remote device when the supplemental signals indicate thatan interaction of the user is focused on the remote device over thecomputing device; and selecting the computing device when thesupplemental signals indicate that the interaction of the user isfocused on the computing device over the remote device.
 17. The methodof claim 15, wherein the remote device is a display screen incommunication with the computing device, and wherein the secondinteraction model causes the computing device to display an indicationof the input gestures received at the touchscreen on a graphical userinterface rendered on the display screen.
 18. The method of claim 15,wherein the remote device is a remote computer in communication with adisplay screen, and wherein the second interaction model causes thecomputing device to communicate the input gestures received at thetouchscreen to the remote computer, the remote computer displaying anindication of the input gestures received at the touchscreen on agraphical user interface rendered on the display screen.
 19. The methodof claim 18, wherein the second interaction model causes the computingdevice to display a mirror of the graphical user interface rendered onthe touchscreen, and wherein the second interaction model causes thecomputing device to display the indication of the input gestures on thetouchscreen.
 20. A computer-readable medium comprising instructionswhich, when executed by one or more processors of a computing devicecomprising a touchscreen for displaying graphical user interfaces andfor receiving input gestures from a user, cause the computing device to:receive image data from one or more sensors, wherein the image dataindicates a gaze direction of the user; analyze the image data todetermine an identity of an object in the gaze direction; in response todetermining that the object is the computing device, selecting a firstinteraction model, wherein the first interaction model comprisesdisplaying a first user interface of an application module on thetouchscreen and causing the touchscreen to receive user gestures forproviding input to the application module executing on the computingdevice; and in response to determining that the object is a remotedevice in communication with the computing device, selecting a secondinteraction model, wherein the second interaction model causes thetouchscreen to receive user gestures for providing input to the remotedevice, wherein the second interaction model causes a display of asecond user interface that is configured and arranged according tofunctions of the remote device.